Data chat
Ресурсы
Описание
модуль “чат с таблицей” для ученых: загружаешь CSV, задаёшь вопросы на естественном языке, а модуль, строит простые графики/сводки и возвращает ответ текст/таблица/картинка. Цель — закрывать 80% повседневных задач табличного анализа без необходимости писать код руками.
Юзкейсы DataChat
1) QC и “понять, что в таблице вообще происходит”
Что делают: быстро находят пропуски/дубликаты/аномалии/типы/диапазоны, чтобы можно было доверять дальнейшему анализу.
Примеры вопросов:
- “Где пропуски и в каких столбцах критично?”
- “Есть ли дубликаты строк/ID?”
- “Какие значения выглядят невозможными/аномальными?”
Датасеты для демо/тестов: Titanic (много пропусков, смешанные типы) ([kaggle.com][1]); Adult/Census Income (категориальные + числовые) ([UCI Machine Learning Repository][2]); NHANES (реальные “грязные” обследования) ([CDC][3])
Бенчмарк: - QC-Exact: точность чисел (missing count, duplicate count, min/max) = точное совпадение
- QC-Explain: качество рекомендаций по чистке (чеклист: корректность, конкретика, отсутствие “галлюцинаций”)
2) “Table 1” и базовые описательные статистики для статьи/отчёта
Что делают: формируют сводную таблицу характеристик по группам (control/treated, когорты, батчи).
Примеры вопросов:
- “Собери Table 1 по группам: mean±std / median[IQR] + N.”
- “Сколько наблюдений в каждой группе и сколько пропусков по ключевым признакам?”
Датасеты: NHANES ([CDC][3]); TCGA clinical (клинические поля, стадии, исходы) ([GDC Portal][4])
Бенчмарк: - Table1-Golden: заранее подготовленный “golden CSV” — сравнение значений с допуском (float tolerance)
- Format: корректный markdown/CSV вывод (названия групп, единицы, N)
3) Отбор когорты и критерии включения/исключения (cohort builder)
Что делают: фильтруют записи по условиям, считают итоговые размеры групп, проверяют перекосы.
Примеры вопросов:
- “Оставь только пациентов 18–65, исключи missing по X, посчитай итоговый N.”
- “Сравни распределения пола/возраста до и после фильтра.”
Датасеты: MIMIC-IV demo (реальные EHR-таблицы, но небольшой публичный сэмпл) ([PhysioNet][5]); PhysioNet Sepsis Challenge (фильтры по времени/лейблу) ([PhysioNet][6])
Бенчмарк: - Cohort-Counts: совпадение итоговых N по шагам фильтра
- Leakage check: DataChat должен предупреждать о “подглядывании в будущее” (особенно на sepsis/time)
4) Сравнение групп + эффект, а не только p-value
Что делают: тесты различий, эффекты, доверительные интервалы, визуализация.
Примеры вопросов:
- “Различается ли Y между A и B? Дай эффект (Cohen’s d / Δmedian) + CI.”
- “Проверь по батчам отдельно.”
Датасеты: Wine Quality (группы/качество) ([UCI Machine Learning Repository][7]); Superconductivity Data (много фич + таргет Tc) ([UCI Machine Learning Repository][8])
Бенчмарк: - Stats-Numeric: проверяем численные результаты теста/эффекта vs эталон
- Assumption hygiene: если t-test неприменим — должен предложить альтернативу (и объяснить)
5) Быстрые связи: корреляции, конфаундеры, “что влияет”
Что делают: корреляции/частичные зависимости/простая регрессия для sanity-check гипотез.
Примеры вопросов:
- “Какие 5 фич сильнее связаны с Y? Покажи корреляции и scatter.”
- “Не объясняется ли связь конфаундером (группа/батч)?”
Датасеты: Adult ([UCI Machine Learning Repository][2]); Ames Housing (много факторов и пропусков) ([kaggle.com][9])
Бенчмарк: - TopK-Stability: совпадение top-K факторов с эталоном (или rank-correlation)
- Plot-Check: график должен иметь правильные оси/агрегации (валидатор по данным)
6) Выбросы и аномалии: найти, объяснить, исключить
Что делают: детектят выбросы (IQR/z-score), строят списки объектов, дают “почему это выброс”.
Примеры вопросов:
- “Найди выбросы по Y внутри каждой группы и покажи топ-20.”
- “Как меняются метрики/средние, если убрать выбросы?”
Датасеты: NYC TLC Trip Record Data (аномалии в distance/fare/time) ([New York City Government][10]); Titanic ([kaggle.com][1])
Бенчмарк: - Outlier-Set: совпадение множества выбросов при фиксированном правиле
- Delta-Effect: корректный пересчёт статистик “до/после”
7) Время, батчи, дрейф: “у нас всё поплыло?”
Что делают: агрегации по времени, сравнение периодов, дрейф распределений, batch effects.
Примеры вопросов:
- “Сравни распределение X между месяцами: где дрейф сильнее?”
- “Есть ли различия между батчами/приборами?”
Датасеты: NYC TLC (временные агрегации) ([New York City Government][10]); Matbench (если нужно бенчмарчить поведение на научных наборах) ([matbench.materialsproject.org][11])
Бенчмарк: - Drift-Metric: эталонные PSI/KS по периодам
- Latency: ограничение на время ответа на больших таблицах/семплах
8) Join нескольких таблиц + аудит ключей (самая частая боль в реальных данных)
Что делают: соединяют таблицы, находят many-to-many, потери строк, несовпадение ключей.
Примеры вопросов:
- “Сджойнь visits и labs по patient_id; проверь, сколько строк потеряли и почему.”
- “Найди ключи, которые дублируются и создают раздувание датасета.”
Датасеты: MIMIC-IV demo (много таблиц, реальные ключи) ([PhysioNet][5]); TCGA clinical ([GDC Portal][4])
Бенчмарк: - Join-Audit: отчёт обязан включать counts до/после + тип join + список проблемных ключей
- Correctness: итоговый rowcount должен совпадать с эталоном
9) “Быстрая baseline-модель” (опционально, но полезно)
Что делают: без AutoML — простой baseline (logreg/linear), честная валидация, метрики, важности.
Примеры вопросов:
- “Сделай baseline и оцени качество (AUC/RMSE). Есть ли утечка?”
- “Какие фичи важнее всего в baseline?”
Датасеты: Titanic (классификация) ([kaggle.com][1]); Adult (классификация) ([UCI Machine Learning Repository][2]); Ames Housing (регрессия) ([kaggle.com][9]); Superconductivity (регрессия) ([UCI Machine Learning Repository][8])
Бенчмарк: - Repro-Train: один и тот же seed ⇒ те же метрики
- No-Leak: запрещены признаки-утечки (или обязателен warning)
“DataChatBench” — как собрать бенчмарки в один набор
Минимальный набор, который реально поддерживать:
- Datasets pack (8–10 штук): Titanic ([kaggle.com][1]), Adult ([UCI Machine Learning Repository][2]), Wine Quality ([UCI Machine Learning Repository][7]), Ames Housing ([kaggle.com][9]), NYC TLC ([New York City Government][10]), NHANES ([CDC][3]), MIMIC-IV demo ([PhysioNet][5]), PhysioNet Sepsis 2019 ([PhysioNet][6]), (опц) Matbench ([matbench.materialsproject.org][11])
- Task types: QC / Table1 / Cohort / Stats / Join / Drift / Outliers / (опц) Baseline model
-
Метрики:
-
Execution success rate (код выполняется)
- Answer correctness (числа совпадают с эталоном)
- Artifact correctness (таблица/картинка реально соответствуют данным)
- Turns-to-solution (сколько итераций до верного ответа)
- Latency/cost (время/токены)
- Safety pass rate (инъекции/опасные запросы не проходят)
Статус интеграции (март 2026)
Код интеграции в монорепо готов (pandakononov + maxim-shalar, фев 2026):
- Backend: DataChatProvider в Chat Service → POST datachat.ai4s.pro/api/run
- Frontend: React компонент с drag-and-drop CSV, WebSocket, графики (base64)
- Helm: env vars AI4S_DATACHAT_BASE_URL, AI4S_DATACHAT_TIMEOUT (optional, default → datachat.ai4s.pro)
Осталось: задеплоить standalone DataChat сервис на datachat.ai4s.pro + обновить Chat Service + E2E тест.
Запихнем его в единую систему